package com.atguigu.common.config.exception;

import com.atguigu.common.result.ResultCodeEnum;
import lombok.Data;

@Data
public class GuiguException extends RuntimeException{

    private Integer code;//异常状态码
    private String msg;//描述信息

    public GuiguException(Integer code,String msg){
        super(msg);//关键字super用于调用父类的构造方法，这里的super(msg)调用了RuntimeException类的构造方法，将msg传递给父类。
        this.code=code;
        this.msg=msg;
    }

    /**
     * 接收枚举类型对象
     * @param resultCodeEnum
     */
    public GuiguException(ResultCodeEnum resultCodeEnum) {
        //在这段代码中，使用super调用了父类RuntimeException的构造方法，将resultCodeEnum.getMessage()传递给父类。
        //这样做是为了在创建GuiguException对象时，能够同时初始化父类RuntimeException的属性。通过调用父类的构造方法，
        //可以确保父类的属性得到正确的初始化。
        super(resultCodeEnum.getMessage());
        this.code = resultCodeEnum.getCode();
        this.msg = resultCodeEnum.getMessage();
    }

    @Override
    public String toString() {
        return "GuliException{" +
                "code=" + code +
                ", message=" + this.getMessage() +
                '}';
    }
}
